// Copyright 2013 Ronald Schlenker, www.technewlogic.de.
// 
// This file is part of Byond.
// 
// Byond is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
// 
// Byond is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with Byond.  If not, see <http://www.gnu.org/licenses/>.
using System.Collections.Generic;
using Mvvm.Bindings;

namespace Mvvm
{
	public class ViewBindingConfiguration
	{
		internal ViewBindingConfiguration()
		{
			_bindings = new List<ViewBinding>();
		}

		private readonly List<ViewBinding> _bindings;
		public IEnumerable<ViewBinding> Bindings { get { return _bindings; } }

		public void AddBinding(ViewBinding binding)
		{
			_bindings.Add(binding);
		}

		// TODO: AddBindingAfter
		public void AddBindingBefore<TBefore>(ViewBinding binding)
		{
			var index = -1;
			for (var i = 0; i < _bindings.Count; i++)
			{
				if (_bindings[i] is TBefore)
				{
					index = i;
					break;
				}
			}
			if (index > -1)
				_bindings.Insert(index, binding);
			else
				_bindings.Add(binding);
		}
	}
}
